开始之前:

1. 识别车牌输出相关数据

在车牌识别功能下,当车牌出现在HUSKYLENS 2屏幕中时,可以被识别和框出,并获车牌的相关数据。可以读取车牌的数据有:指定车牌的ID、名称、车牌内容(车牌号)、宽度、高度以及车牌中心点的X坐标位置和Y坐标位置,画面中的车牌总数。

示例程序如下。

#include "unihiker_k10.h"
#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2  huskylens;
UNIHIKER_K10 k10;
uint8_t      screen_dir=2;


// 主程序开始
void setup() {
	k10.begin();
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	huskylens.switchAlgorithm(ALGORITHM_LICENSE_RECOGNITION);
}
void loop() {
	huskylens.getResult(ALGORITHM_LICENSE_RECOGNITION);
	if ((huskylens.available(ALGORITHM_LICENSE_RECOGNITION))) {
		k10.canvas->canvasText((String("靠近中心的车牌ID:") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_LICENSE_RECOGNITION), Result, ID)))), 1, 0x0000FF);
		k10.canvas->canvasText((String("车牌总数:") + String((huskylens.getCachedResultNum(ALGORITHM_LICENSE_RECOGNITION)))), 3, 0x0000FF);
		k10.canvas->canvasText((String("第一个车牌ID:") + String((RET_ITEM_NUM(huskylens.getCachedResultByIndex(ALGORITHM_LICENSE_RECOGNITION, 1-1), Result, ID)))), 5, 0x0000FF);
	}
	k10.canvas->updateCanvas();
	delay(50);
}

上传程序,等待程序上传完成后。

将HuskyLens 2的摄像头对准画面中的车牌进行学习,如何学习车牌详细操作请看车牌识别功能说明

将HUSKYLENS 2的摄像头对准车牌,观察行空板K10屏幕上的数据。

**运行结果:**如下,车牌总数包含已学习的车牌和未学习的车牌,如果指定的车牌是未学习的车牌,ID号为0,如果指定车牌是已学习的车牌,则输出其对应ID号。

Interface Diagram

2. 输出指定ID车牌的数据

当画面中出现多个相同ID的车牌时,可以使用以下示例程序统计画面中的该ID车牌的相关数据。

#include "unihiker_k10.h"
#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2  huskylens;
UNIHIKER_K10 k10;
uint8_t      screen_dir=2;


// 主程序开始
void setup() {
	k10.begin();
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	huskylens.switchAlgorithm(ALGORITHM_LICENSE_RECOGNITION);
}
void loop() {
	huskylens.getResult(ALGORITHM_LICENSE_RECOGNITION);
	if ((huskylens.available(ALGORITHM_LICENSE_RECOGNITION))) {
		if (((huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 1) != NULL))) {
			k10.canvas->canvasText((String("ID1车牌总数:") + String((huskylens.getCachedResultNumByID(ALGORITHM_LICENSE_RECOGNITION, 1)))), 1, 0x0000FF);
			k10.canvas->canvasText("第一个ID1车牌", 3, 0x0000FF);
			k10.canvas->canvasText((String("的车牌号:") + String((RET_ITEM_STR(huskylens.getCachedIndexResultByID(ALGORITHM_LICENSE_RECOGNITION, 1, 1-1), Result, content)))), 4, 0x0000FF);
			k10.canvas->canvasText("第一个ID1车牌", 6, 0x0000FF);
			k10.canvas->canvasText((String("的坐标:") + String((String((RET_ITEM_NUM(huskylens.getCachedIndexResultByID(ALGORITHM_LICENSE_RECOGNITION, 1, 1-1), Result, xCenter))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedIndexResultByID(ALGORITHM_LICENSE_RECOGNITION, 1, 1-1), Result, yCenter)))))))), 7, 0x0000FF);
		}
	}
	k10.canvas->updateCanvas();
	delay(50);
}

**运行结果:**如下,当画面中出现多个指定ID的车牌时,可获取画面中该ID车牌的总数、该ID下指定车牌的车牌号、车牌坐标等数据。

Interface Diagram